<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body></body>
  <script>
    /* 
        sort()
            - sort用来对数组进行排序（会改变原数组）  返回值是 排序之后的数组。 
            - sort默认会将数组升序排序
             注意：sort默认会按照Unicode编码进行排序，所以如果直接通过sort对数字进行排序
                可能会得到一个不正确的结果
        - 参数：
            - 可以传递一个回调函数作为参数，通过回调函数来指定排序规则
                （a,b）=> a - b 升序排列
                （a,b）=> b - a 降序排列

              
        forEach()
            - 用来遍历数组
            - 它需要一个回调函数作为参数，这个回调函数会被调用多次
              数组中有几个元素，回调函数就会调用几次
              每次调用，都会将数组中的数据作为参数传递
            - 回调函数中有三个参数：
                - element：数组中的当前元素
                - index：当前元素的索引
                - array：当前元素所属的数组
            - forEach()不会返回任何值，只会对数组进行遍历

        filter()
            - 用来过滤数组
            - 它需要一个回调函数作为参数，这个回调函数会被调用多次
              数组中有几个元素，回调函数就会调用几次
              每次调用，都会将数组中的数据作为参数传递
            - 回调函数中有三个参数：
                - element：数组中的当前元素
                - index：当前元素的索引
                - array：当前元素所属的数组
            - filter()会返回一个新的数组, 包含所有通过测试的元素。会改变数组的长度
            - 注意：filter()不会改变原数组，而是返回一个新数组

        map()
            - 根据当前数组生成一个新数组
            - 需要一个回调函数作为参数
                 回调函数的返回值会成为新数组中的元素
            - 非破坏性方法不会影响原数组，而是返回一个新数组
 
        reduce()
            - 用来对数组进行归并操作
            - 第一个参数是回调函数，第二个参数是初始值（可选）
            -返回值是归并后的结果
    */
    // let arr = [1, 7, 8, 5, 3, 2, 4];
    // let res = arr.sort();
    // console.log(arr, "arr", res);

    // let res1 = arr.forEach((item) => {
    //   console.log(item, "item");
    // });
    let arr1 = [1, 3, 56, 7, 3, 2, 4, 6];
    let res4 = arr1.reduce((pre, cur, index, arr) => {
      // console.log(pre, "pre");
      // console.log(cur, "cur");
      // console.log(index, "index");
      // console.log(arr, "arr");
      return pre + cur;
    }, 0);
    console.log(res4, arr1, "--");
    
  </script>
</html>
